package com.web.kdl.controller.siteWheel;

import com.web.kdl.common.result.CommonResult;
import com.web.kdl.pojo.Vo.SiteAndWheelInfo;
import com.web.kdl.pojo.Vo.SiteWheelVo;
import com.web.kdl.pojo.dto.AddSiteWheelDto;
import com.web.kdl.pojo.dto.EditSiteWheelByIdDto;
import com.web.kdl.pojo.dto.EditSiteWheelDto;
import com.web.kdl.service.siteWheel.SiteWheelService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.List;
import java.util.TreeSet;

/**
 * @Author： shulibin
 * @Date： 2025/7/30 9:32
 * @Describe：
 */
@RestController
@RequestMapping("/siteWheel")
public class SiteWheelController {

    @Resource
    SiteWheelService siteWheelService;
    // 获取所有站点 去重显示
    @PostMapping("/getAllSite")
    public CommonResult getAllSite() {
        TreeSet<SiteWheelVo> allSite =siteWheelService.getAllSite();
        return CommonResult.success(allSite);
    }

    // 获取所有站点轮子信息 用于列表栏显示
    @PostMapping("/getAllSiteWheel")
    public CommonResult getAllSiteWheel() {
        return CommonResult.success(siteWheelService.getAllSiteWheel());
    }

    //新增飞轮
    @PostMapping("/addSiteWheel")
    public CommonResult addSiteWheel(@Valid @RequestBody AddSiteWheelDto addSiteWheelDto) {
        siteWheelService.addSiteWheel(addSiteWheelDto);
        return CommonResult.success();
    }
    //根据站点id和飞轮序列号删除飞轮
    //TODO 删除飞轮表
    @DeleteMapping("/deleteSiteWheel")
    public CommonResult deleteSiteWheel(int siteId,int flywheelSerial) {
        int i = siteWheelService.deleteSiteWheel(siteId,flywheelSerial);
        return i > 0 ? CommonResult.success() : CommonResult.error("删除失败");
    }
    //根据表飞轮id删除飞轮
    @DeleteMapping("/deleteSiteWheelById")
    public CommonResult deleteSiteWheelById(int id) {
        int i = siteWheelService.deleteSiteWheelById(id);
        return i > 0 ? CommonResult.success() : CommonResult.error("删除失败");
    }
    //根据站点id和飞轮序列号修改飞轮信息
    @PostMapping("/updateSiteWheel")
    public CommonResult updateSiteWheel(@Valid @RequestBody EditSiteWheelDto editSiteWheelDto) {
        int i = siteWheelService.updateSiteWheel(editSiteWheelDto);
        return i > 0 ? CommonResult.success() : CommonResult.error("修改失败");
    }
    //根据表id修改飞轮信息
    @PostMapping("/updateSiteWheelById")
    public CommonResult updateSiteWheelById(@Valid @RequestBody EditSiteWheelByIdDto editSiteWheelByIdDto) {
        int i = siteWheelService.updateSiteWheelById(editSiteWheelByIdDto);
        return i > 0 ? CommonResult.success() : CommonResult.error("修改失败");
    }
    //根据站点id查询飞轮信息
    @PostMapping("/getWheelBySiteId")
    public CommonResult getWheelBySiteId(int siteId) {
        return CommonResult.success(siteWheelService.getWheelBySiteId(siteId));
    }
    //获取所有站点，以及站点下的所有飞轮信息
    @PostMapping("/getSiteAndWheelInfo")
    public CommonResult getSiteAndWheelInfo() {
        List<SiteAndWheelInfo> siteAndWheelInfo = siteWheelService.getSiteAndWheelInfo();
        return CommonResult.success(siteAndWheelInfo);
    }
}
